﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using SharedGenomics.Core;

namespace SharedGenomics.Workbench.Core
{
    public interface IApplicationController
    {
        void OpenTask(ITask task);
        void OpenTask(string taskName);
        void CreateAndShowPresenter<T>(FormDisplayMode displayMode) where T : IPresenter;
        void CreateAndShowPresenter<T>(FormDisplayMode displayMode, Action<T> initialisationAction) where T : IPresenter;
        void CreateAndShowPresenter<T>(FormDisplayMode displayMode, Action<T> initialisationAction, Action<T> closeAction) where T : IPresenter;
        void ShowPresenter(IPresenter presenter, FormDisplayMode displayMode);

        void AddMenu(IMenuFactory menuFactory, CommandFactory commandFactory);

        IView MainView { get; }
    }
}
